Interconnection of high speed components of a node is performed via the backplane or wires (cable, optical fiber), requiring close attention to error handling, especially at bit rates of multiple of Gb/s. In search of a low overhead and efficient line encoding, the IEEE task force has adopted a 64b/66b encoding scheme for 10 GB Ethernet into the IEEE802.3ae. This scheme uses a small overhead for error correction (only 3.125%), which provides an acceptable level of transmission density and run length.
In accordance with the 64b/66b encoding scheme, each 64 bits word is scrambled using a polynomial of the form x58+x39+1, and a two-bit preamble is added to the scrambled word for differentiating data words from data and control words. While scrambling enables better recovery of the received data (fast synchronization), a self-synchronous scrambler has the disadvantage that it duplicates the errors, i.e. every transmission error results after descrambling in two additional errors.
On the other hand, there is no provision in IEEE802.3ae for single or multiple error correction of 64b/66b encoded lines. Error duplication at the receiver compounds the gravity of the problem. Consequently, a simple error correction scheme is not sufficient in 64b/66b encoders.
U.S. patent application Ser. No. 10/629,690 (Raahemi) entitled “Error Correction On M-Bit Encoded Links” filed on Jul. 30, 2003 and assigned to Alcatel Inc. proposes a simple and fast error-correction scheme that can be used in conjunction with the 64b/66b encoding in products where intra-board (chip-to-chip) or inter-shelf interconnections of high speed elements are required. It utilizes the CRC16 to detect and correct all single-bit errors and detects all multiple-bit errors. The content of that patent application is incorporated herein by reference.
While the method proposed by patent application Ser. No. 10/629,690 optimizes the error detection and correction, it however considers each codeword individually, isolated from the previous codeword, meaning that it does not take into account errors which might cross the codeword boundary and enter into the next codeword. There is a need to provide a simple and fast error-correction scheme for the 64b/66b encoding that takes into account errors which cross the codeword boundaries.